package com.weixin.core;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.weixin.config.WxpayConfig;

/** 
 * <p>类描述：储存所有的微信商户信息</p>
 * <p>创建人：邓强   </p>
 * <p>创建时间：2017年10月30日 上午9:12:53</p>
 * <p>修改人：</p>
 * <p>修改时间：2017年10月30日 上午9:12:53</p> 
 * <p>修改备注：</p>
 * @version   V1.0      
 */

public class PayFactory {
	private static Map<String, WxpayConfig> wxpayConfigs = new HashMap<>();
	
	private static WxpayConfig defaultWxpayConfig = null;
	
	public static void addWxConfigs(WxpayConfig wxpayConfig){
		if(wxpayConfigs.size() == 0){
			defaultWxpayConfig = wxpayConfig;
		}
		wxpayConfigs.put(wxpayConfig.getAppid(), wxpayConfig);
	}
	
	public static void addAllWxConfigs(Map<String, WxpayConfig> configs){
		if(configs.size() == 0){
			Iterator<WxpayConfig> it = configs.values().iterator();
			if (it.hasNext()) {
				WxpayConfig wxpayConfig = it.next();
				defaultWxpayConfig = wxpayConfig;
			}
		}
		wxpayConfigs.putAll(configs);
	}

	public static WxpayConfig getDefaultWxpayConfig() {
		if(defaultWxpayConfig == null){
			throw new RuntimeException("没有初始化微信支付配置，请至少添加一个微信商户配置");
		}
		return defaultWxpayConfig;
	}
	
	/**
	 * <p>通过appId获取</p>
	 * @param appid
	 * @return   
	 * <p>创建人：邓强   </p>
	 * <p>创建时间：2017年10月30日 上午9:19:16</p>
	 */
	public static WxpayConfig getWxpayConfig(String appid){
		return wxpayConfigs.get(appid);
	}
	
}
